The problems with a traditional graphics pipeline:
Until now, the graphics pipeline has always been made up of specialised processing units capable of handling specific tasks. When an application is limited by the capabilities of one portion of the traditional graphics pipeline – for example the pixel shader – the chip’s performance will be limited by the portion that is the bottleneck.
When the traditional graphics pipeline is bottlenecked by one or more of the pipeline stages, silicon is sitting there idle. In vertex heavy scenes the pixel shader is sitting idle, and in pixel heavy scenarios the vertex shaders will be sitting idle. Essentially this means that the traditional GPU has an inconsistent performance characteristic. It’s also an inefficient design when considering performance-per-watt and performance-per-mm².
With a unified GPU architecture, all of these problems are alleviated because every shader processor is capable of processing vertices, pixels and geometry. This means that the more of the silicon is being used more of the time. It doesn’t matter whether the scene is vertex heavy or pixel heavy – the GPU’s dispatch and control logic can dynamically assign vertex, pixel (and later geometry) operations to any available shader processors.
In the past, developers have had to worry about whether aspects of their games were unbalanced, with too much emphasis on either the vertex shader or pixel shader, and thus leaving other portions of the GPU to sit idle. With a dynamically load balanced shader architecture, developers can choose how they want to code their game, without having to worry about whether it’s going to result in a performance bottleneck.
Obviously, it’s going to take some time before unified shader architectures can be considered mainstream, but if we think two or three years into the future, there will be a lot more unified hardware in the channel. Taking that into account, we think it’s fairly safe to say that we’ll start to see games developed with more ‘freedom’ in the three years. However, that’s ultimately also dependent on the uptake of Microsoft Windows Vista, since that’s a requirement if you want to play DirectX 10 games.
The other problem we foresee with a traditional pipeline is that the progression in technology – the geometry shader, for example, which we’ll come to shortly – requires new silicon. The rate at which graphics technology progresses at the moment also requires more parallelism, which in turn requires even more silicon. More pixel shaders and/or more vertex shaders never used to come for free, and neither did additional functionality.
With a unified pipeline, you’ve essentially got an array of floating point processor units capable of working through many types of calculations and programmes. At the moment, each floating point processor unit is capable of Vertex Shading, Pixel Shading, Geometry Shading and Physics, but that’s not to say that these are the only modes that these floating point processor units are going to be limited to in the future.
Want to comment? Please log in.